BOSS

Contents

  1. Introduction
  2. Installation & Uninstallation
  3. Using BOSS
    1. Sorting Plugins
    2. The Results Report
    3. Customising BOSS's Results
    4. Editing Settings
  4. Troubleshooting
  5. Contributing To BOSS
  6. Translating BOSS
  7. Credits
  8. Project Members
  9. License
  10. Appendices
    1. Introduction To Load Orders
    2. Dirty Edits, Mod Cleaning & CRCs
    3. File Permissions
    4. Differences between BOSS v2 and v3
  11. Version History

Introduction

BOSS is a plugin load order optimiser for TES IV: Oblivion, TES V: Skyrim, Fallout 3 and Fallout: New Vegas. It is designed to assist mod users in avoiding detrimental conflicts, by automatically calculating a load order that satisfies all plugin dependencies and maximises each plugin's impact on the user's game.

BOSS also provides some load order error checking, including checks for requirements, incompatibilities and cyclic dependencies. In addition, it provides a large number of plugin-specific usage notes, bug warnings and Bash Tag suggestions for Wrye Bash.

While BOSS is able to calculate correct load order positions for the vast majority of plugins using only their content, it cannot do so for all plugins. As such, BOSS provides a mechanism for supplying additional plugin metadata so that it may sort them correctly.

BOSS is intended to make using mods easier, and mod users should still possess a working knowledge of mod load ordering. See Introduction To Load Orders for an overview.

Installation & Uninstallation

Version 3 is incompatible with earlier versions, which should be removed. Any existing user rules must be manually recreated in BOSS's user interface. Some plugins sorted correctly in v2 may be sorted incorrectly by v3 until their metadata has been recorded. Please notify the team if you observe any load order issues.

BOSS requires the Visual C++ Redistributable for Visual Studio 2013 (x86). BOSS can be installed either using its automated installer or manually. To install BOSS manually:

  1. Extract the downloaded archive to a location of your choice.

If BOSS was installed using the installer, then use the uninstaller linked to in the Start Menu to uninstall BOSS. If BOSS was installed manually:

  1. Delete the files you extracted from the location you chose.
  2. Delete the BOSS folder in your local application data folder, which can be accessed by entering %LOCALAPPDATA% into Windows' File Explorer.

Using BOSS

When BOSS is run, it will attempt to detect which of the supported games are installed, and set itself to run for the first game detected, unless a default game has been set, in which case it will set itself to run for that game. Once a game has been set, the main window will be displayed.

BOSS's main window
BOSS's main window. The title bar displays which game BOSS is running for.

Clicking the Edit Metadata button will open BOSS's metadata editor, where you can make changes to the metadata BOSS uses to sort plugins, the messages that get displayed for plugins, and any Bash Tag suggestions BOSS makes.

Clicking the Sort Plugins button will begin the plugin sorting process. This will sort your plugins, allow you to make any changes to the load order it produces, then display a report that details the results of BOSS's activity.

Clicking the View Last Report button will display the report generated the last time BOSS sorted your plugins.

The File menu provides menu items for sorting plugins, viewing the debug log and the last report BOSS generated, and quitting BOSS. The menu's Redate Plugins option is provided so that Skyrim modders may set the load order for the Creation Kit. It is only enabled for Skyrim, and changes the timestamps of the plugins in its Data folder to match their current load order. A side effect of changing the timestamps is that any Steam Workshop mods installed will be re-downloaded.

The Edit menu provides menu items for accessing BOSS's metadata editor and the settings window.

The Game menu allows you to change which game BOSS is running for. Games that BOSS cannot find are greyed out, and the the one BOSS is running for is marked with a dot to its left. To change the active game, simply select another game in the list.

The Help menu provides a link to this readme and an about page that contains the version of BOSS being run, some legal information and a link to the project homepage.

Sorting Plugins

Editing BOSS's calculated load order.

Clicking the Sort Plugins button in the main window will begin the sorting process.

Provided that masterlist updating is enabled and that a masterlist repository URL is set, BOSS checks for updates to its masterlist and downloads any that are available. If there are any syntax errors in the latest masterlist (due to human error by its maintainers), the updater rolls back one version at a time until it finds a version that works. If any other errors are encountered, updating is cancelled.

During the sorting process, BOSS extracts information from each of the plugins installed in the game's Data folder and combines this information with any relevant metadata provided by the masterlist and userlist. It then uses the combined data to build a directed graph of all the interactions between all the installed plugins. A topological sort is then carried out on the graph to produce a list of plugins in their optimal load order, according to BOSS's criteria. If a cycle is detected (eg. A depends on B depends on A), then sorting is cancelled as it becomes impossible to generate a load order that satisfies all conditions.

If successful, the calculated load order is then displayed in the dialog shown above, which allows the user to edit the load order before it is applied. Multiple plugins may be selected and moved at once. Plugins which are empty (ie. only contain a header record) are displayed in grey text, and plugins that are not empty and load BSAs are displayed in blue text. If OK button is clicked, it is then applied, and any edits made are recorded in the userlist for re-application when BOSS next sorts the game's plugins. If the Cancel button is clicked, then the load order and any edits made are discarded.

BOSS then generates a report and displays it either in a new window or in your default browser, according to the value of the relevant setting. Any errors encountered during the sorting process will be displayed in this report, including those due to graph cycles, missing dependencies or installed incompatible plugins. See the next section for more information on the report.

BOSS is able to sort plugins ghosted by Wrye *ash, and can extract Bash Tags and version numbers from plugin descriptions. Provided that they have the Filter Bash Tag present in their description, BOSS can recognise filter patches and so avoid displaying unnecessary error messages for any of their masters that may be missing.

While reading very large plugins, such as the game's main master file, BOSS may appear to stop responding: this is not an issue. The time it takes for BOSS to sort your load order depends primarily on the size of the masterlist being used, the total size of the files in your load order, and the number of plugins in your load order. The first run is likely to be longer than subsequent runs as BOSS needs to download the full masterlist, rather than just the changes made by updates. In testing, it was found that sorting ~90 plugins with a total size of ~350 MB and a 5 MB masterlist takes around 15 seconds, though performance will vary with computer hardware.

The Results Report

BOSS report summary tab BOSS report details tab
BOSS's report viewer.

BOSS's results report can be displayed either in BOSS's own report viewer, or in your default web browser, according to the value of the relevant setting.

The report is comprised of three main sections:

In addition, there are a few filters that can be used to selectively hide items in the Details tab. These filters are:

BOSS will display the version numbers of any plugins that provide them in their description fields. If a plugin supplies no version number, it cannot be displayed. The version numbers may not reflect the actual version of the mod installed - this could either be due to the mod author forgetting to update the description, or due to a mistake in BOSS's detection. As version numbers are supplied by mod authors in a wide range of formats and BOSS has to detect as many as possible, it occasionally identifies parts of some descriptions as version numbers incorrectly. When in doubt, check the version number given in a mod's readme.

BOSS's plugin messages are a valuable resource, acting as a means of providing users with information that they might otherwise not obtain. It is important for a stable, healthy game that you act on any messages that require action.

If you think a message suggests an unnecessary action, report it to an official BOSS thread. If you encounter a message that is non-conditional, ie. it suggests an action but is still displayed on subsequent runs of BOSS after the action has been carried out, also report it to an official BOSS thread, so that it can be made conditional.

Customising BOSS's Results

BOSS's metadata editor.

BOSS's sorting algorithm uses the contents of plugins to work out where they should load relative to one another. However, this is sometimes not enough for it to produce a correct load order. In such cases, additional metadata can be supplied so that the plugins get sorted correctly. This metadata is supplied to BOSS by two sources: one is the masterlist, which is maintained by the BOSS team, and the other is the userlist, which you can edit as you desire.

The metadata editor allows you to manage the metadata stored in your userlist. When opened, it lists all the plugins you have installed, and any that are missing but have existing user-added metadata, in alphabetical order. Plugins that load BSAs are displayed in blue text, and plugins with user-added metadata are displayed in bold text. Selecting a plugin then opens its metadata for editing, and displays any existing metadata in the fields to the right of the plugin list. Right-clicking a plugin displays a context menu containing a few commands. The editor fields and context menu commands are explained in the tables below.

The Add …, Edit … and Remove … buttons are used to edit the contents of the list currently visible. The Edit … and Remove … buttons are greyed out if no row is selected or if the selected row is not user-added metadata, but comes from the masterlist or the plugin itself. Metadata that comes from the masterlist or the plugin itself cannot be edited or removed, only added to. This is to prevent users from accidently overriding important metadata.

The Save Changes button will save any user-added metadata to your userlist, including any changes made, then exit the metadata editor. The Cancel button will exit the editor without saving any changes.

FieldDescription
Enable User ChangesIf this is checked, BOSS will use the metadata you supplied when sorting the current plugin. Otherwise, your metadata will be ignored.
PriorityThis is a very rough control for determining how far up or down the load order a plugin should go. Plugins with equal priority will be compared as normal by the sorting algorithm, but plugins with a larger priority value will load later in the load order than plugins with a smaller priority value, unless the former depends on the latter or the latter is explicity told to load after the former. Plugins have a default priority of 0.
RequirementsThis is a list of files that are required by the current plugin for it to function correctly. BOSS will display an error message if any of the listed files are missing.

Any file, not just plugins, can be listed here, and each file has three sub-fields:

  • The filename is the path, relative to the game's Data folder, of the file to be checked for. This sub-field is required.
  • The display name is optional, and if specified will be used instead of the filename in any error messages that are displayed if a problem is encountered relating to the file.
  • The condition is the optional condition string that is used to determine if the file should be checked for. If left blank, the file will always be checked for. Condition strings are a relatively advanced part of BOSS's functionality, and their syntax is covered in the Metadata File Syntax documentation.

Note that listing a plugin's masters as requirements is pointless, as BOSS already checks them.

IncompatibilitiesThis is a list of files that are incompatible with the plugin. BOSS will display an error message if any of the listed files are found.

Any file, not just plugins, can be listed here, and each file has the same three sub-fields as for the requirements field.

Load AfterThis is a list of plugins which, if present, the current plugin must load after, but which are not required. This field can be used for resolving specific compatibility issues.
MessagesA list of messages that are to be displayed for the plugin in BOSS's report. These have no bearing on a plugin's position in the load order.

Each message has four sub-fields:

  • The type is fairly self-explanatory, and is used to provide messages of varying severity with appropriate emphasis in BOSS's report.
  • The content is the actual message text.
  • The condition is, like for the corresponding file sub-field, used to determine if the message should be displayed. If left blank, the message is displayed.
  • The language is the language BOSS runs in that the message will be displayed for. For example, if the message language is set to English and BOSS is running in German, then the message will not be displayed. If left unspecified, the message will be shown no matter what language BOSS is running in.

If a message's condition determines that it should not be displayed, then it will not be displayed, no matter the language. However, if a message's condition determines that it should be displayed, but the language is specified and doesn't match the language BOSS is running in, the message will not be displayed.

Bash TagsA list of Bash Tags. These are used by the Wrye *ash utilities when generating a Bashed Patch. BOSS's metadata includes Bash Tag addition and removal suggestions, and any Bash Tags that came with the plugin are also displayed.

As BOSS can suggest Bash Tags be added or removed, it is possible for the same Tag to appear twice, being suggested for addition and removal. In such cases, removal overrides addition.

Each Bash Tag has three sub-fields:

  • The state determines whether the Tag is to be suggested for addition or removal.
  • The name is the actual Bash Tag name.
  • The condition decides if the Tag is to be suggested or not. It functions as for files and messages.

If a plugin's masters are missing, an error message will be displayed for it. Filter patches are special mods designed for use with a Bashed Patch that do not require all their masters to be present, and so any plugin with the Filter tag applied and missing masters will not cause any errors to be displayed.

Context Menu CommandDescription
Copy NameCopies the selected plugin's filename to the clipboard.
Copy Metadata As TextCopies the selected plugin's current metadata, as it appears in the userlist, to the clipboard. This makes it easier to share your metadata changes with the BOSS team, as they can then paste this text directly into the masterlist, and also avoids any typos being introduced. If posting the text in an online forum that supports BBCode (as most forums do), be sure to wrap it in [code] tags, eg. [code]copied text[/code], so that the spaces are not removed by the forum software.
Remove All User-Added MetadataThis removes all saved user-added metadata from the selected plugin, and any unsaved data added to the plugin since the Metadata Editor window was opened.

Editing Settings

BOSS's settings window.

BOSS's settings window may be accessed by clicking Edit→Settings in the main window's menu bar. BOSS's settings are detailed in the table below.

SettingDescription
Default GameIf set to something other than Autodetect, this overrides game autodetection. If the game specified is not detected, BOSS falls back to autodetection.
LanguageControls the language BOSS uses in its interfaces. Debug messages are always displayed in English, and any plugin messages that do not have translations in the selected language will be displayed in English instead.
Debug VerbosityControls the verbosity of the debug output, which is written to %LOCALAPPDATA%\BOSS\BOSSDebugLog.txt.
Update masterlist before sortingIf checked, BOSS will update its masterlist, should an update be available, before sorting plugins.
View reports externally in default browser.If checked, BOSS will display its report using your default web browser instead of opening its own window.

The games list allows the customisation of which games BOSS offers support for, trivialising support for multiple copies of a game and Total Conversions. The games listed here will be displayed in the main window's Game menu when BOSS is next run. The Add Game, Edit Game and Remove Game buttons are used to edit the list. Each game has several columns, which are explained below.

ColumnDescription
NameThe name of the game, or another identifying string, that is displayed in menus and the main window's title bar.
Base Game TypeEvery game BOSS runs for must use the plugin file format and load order system of one of the following games:
  • TES IV: Oblivion
  • TES V: Skyrim
  • Fallout 3
  • Fallout: New Vegas
BOSS Folder NameThe sub-folder which BOSS uses to store the game's files in. Each game must be given a unique sub-folder.
Master FileThe game's main master file. This is specified as it must load before all other plugins. Note that Skyrim-based games will always load Skyrim.esm first, so this column must always be set to Skyrim.esm for such games.
Masterlist Repository URLThe URL of the repository that BOSS uses to update its local copy of the masterlist. If set to an empty string, masterlist updating will be skipped.

Masterlist repositories are Git repositories that are configured to allow unauthenticated read access and contain a masterlist file named masterlist.yaml in their root directory. The BOSS team maintains a set of official repositories for the games that BOSS supports by default.
Masterlist Repository BranchThe branch of the masterlist repository that BOSS should get masterlist updates from.
Install PathThe path to the game's folder, in which the Data folder lies. Either this or a registry key must be supplied.
Install Path Registry KeyThe registry key, in HKEY_LOCAL_MACHINE, that contains the install path of the game. This is used to obtain the install path if BOSS has no previous record of the game's install path, or BOSS's stored install path is invalid. Either this or an install path must be supplied.

Note that for Skyrim, multiple copies or Total Conversions will all edit the same plugins.txt file, and so they lack the level of independence that is achievable for other games.

Troubleshooting

If BOSS encounters a problem at any point, it should provide an error message, either in a dialog (as is generally the case) or in its report (as for errors encountered during the sorting process). If BOSS unexpectedly crashes, or you experience a problem for which no error message is given, please report the crash or problem to an official BOSS thread (see Contributing To BOSS), so that it can be fixed.

If the information below does not help you to solve any problems you are experiencing, please seek further support in one of the official BOSS threads.

There are a few general reasons why BOSS may fail to function correctly. Check if any of the symptoms listed below fit your issue.

No change in load order.
Make sure that you aren't using another utility to lock your load order.
Some plugins have the wrong or no version number given in the BOSS Log.
No solution.
You get an error message of the form There is a problem sending the command to the program.
Windows sometimes does this when it tries to open files in their default application. If you're sure that you have a default program for HTML files set, restarting your computer generally fixes the issue.
A game is installed, but BOSS cannot detect it.
The game's Registry entry is missing. This happens to a lot of people, because Steam likes to remove it whenever the game is updated or its game cache is verified. Run the game's launcher to add the Registry entry back again.

Contributing To BOSS

User contribution of additions and corrections to BOSS's masterlists are vital to the upkeep of BOSS. Please let us know what you know!

General discussion and the submission of questions, suggestions and metadata takes place in BOSS's official threads for Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas.

Information on dirty plugins is very welcome, but for such information to be useful we require:

Translating BOSS

BOSS supports translation into other languages, with the following limitations:

Translations can be submitted for inclusion into BOSS in the relevant issue tracker entry, by posting it in one of BOSS's official threads (see Contributing To BOSS), or by contacting one of the BOSS team directly (see Project Members).

To translate BOSS's installer:

  1. Download the installer script.
  2. Open the downloaded installer script in a text editor of your choice.
  3. The English strings are located in the section with the heading English Strings. Copy and paste this section into a new text file, and translate the quoted strings, replacing the English text. For the lines beginning VIAddVersionKey, only translate the second quoted string.
  4. Save the text file containing your translated strings.
To translate the BOSS application:
  1. Download and install the latest version of Poedit.
  2. Download BOSS's translation template file.
  3. If you are updating an existing translation, download the relevant translation file for the language you're interested in:
  4. Open Poedit and select File->Preferences, then in the Editor tab ensure that the checkbox for the Automatically compile .mo file on save setting is checked. Click OK to close the preferences window.
  5. If you are starting a new translation, select File->New catalogue from POT file... and choose the template file you downloaded. In the Catalog properties dialog, just click OK without changing anything.
  6. If you are updating a previous translation, open the translation file you downloaded in Poedit, then select Catalogue->Update from POT file... and choose the template file you downloaded. Click OK in the Update summary dialog.
  7. Edit the translation file to add or update translations of the programs' text. Strings that were added since the last translation are displayed in bold and dark blue, and strings you have edited the translations of are marked with a star to the left of their source text in the main list.

    Some languages may use different words or phrases for different contexts where only one word or phrase may be used for all contexts in English. While no contextual information is supplied to translators by default, it can be added on request. To request the addition of contextual information to a text string, contact WrinklyNinja, quoting the structure that contains the string for which you are requesting contextual information.

    Some strings to be translated may contain special characters. Different types of special character that may be encountered are:

  8. Save the translation file with the filename boss.po in a location of your choosing. This will also create a boss.mo file in the same location.

Credits

As BOSS is very much a community project, credit is due to a very large number of sources and people outside of the BOSS Team. Some people have gone out of their way and provided continuing, expert and detailed help - thank you very much!

In addition to the above data-related support, the following are credited with application-related support:

BOSS is written in C++ and makes use of the Alphanum, Boost, libespm, libgit2, libloadorder, PugiXML, wxWidgets and yaml-cpp libraries. BOSS's reports are written in HTML5/CSS3/Javascript and make use of Polyfill.js to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found here.

Project Members

Since June 2009, BOSS has been a collaborative project, first on Google Code and now on GitHub. In alphabetical order, the project members are:

MemberAdminCodeContributes To Masterlist
GitHubBethesdaNexusOblivionSkyrimFallout 3Fallout: New Vegas
Aellis-BOSSAellis
egocaribegocarib-
Freso
ineedbettername-
LotteryDiscountz
niveuseverto
noxwylliyumichan
PacificMorrowind
Sharlikran
SilentSpikeSilentSpike69
TokcDKTokc.D.K.
William-ImmWilliam ImmWilliamImm
WrinklyNinja

Members who have since left the project are credited below:

Ex-MemberAdminCodeContributed To Masterlist
OblivionSkyrimFallout 3Fallout: New Vegas
AliTheLord
Arkangel
Arthmoor
Calen Ellefson
Desidemona
Gabba
Leandro Conde
Loucifer
lucascomamala
Malonn
Peste
Psymon
Random007
Red Eye
RiddlingLynx
scrapperrm
Skyline
Space Oden69
Televator
Torrello
Vacuity
Valda
ZiggyX200
Zoe.Alice.Kahala

Unless otherwise noted, project members can be contacted on the Bethesda Softworks Forums or on The Nexus Forums via the private messaging system.

License

BOSS is distributed under the GNU General Public License v3.0, aside from the documentation, which is distributed under the GNU Free Documentation License v1.3. The full texts of the licenses are included with BOSS in the accompanying GNU GPL v3.txt and GNU FDL v1.3.txt files.

While the GPL license allows anyone to make derivative works of BOSS, the BOSS Team encourages those thinking of doing so to first discuss their reasoning for such an endeavour with the Team. It may be that what the derivative work would do differently is already planned for a future version of BOSS or would be happily integrated into BOSS, thus avoiding any extra effort by others.

BOSS has been specifically designed to prevent it being locked into the BOSS Team's official masterlist repositories. Nevertheless, the BOSS Team appeals to the community to avoid the distribution of unofficial masterlists, as this would only hamper the effort to create one set of stores for load order information. Any issues with a masterlist are best brought to the attention of the BOSS Team so that they may be remedied.

GNU Free Documentation License Version 1.3 Notice:

Copyright (C) 2012—2014 WrinklyNinja
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the file named "GNU FDL v1.3.txt".

Appendices

Introduction To Load Orders

This appendix provides a general overview of load ordering in the games BOSS supports for those who are unfamiliar with the concept. For simplicity, the game will be used when the text refers to any of the games that BOSS supports.

Mod plugins for the game are files that end in .esp or .esm. These files are created by the game's official editing tools, or by third party modders' tools. They contain various data entries, which can either be brand new additions or changes to the entries added by another plugin, including the game's main master file (Oblivion.esm, Skyrim.esm, Fallout3.esm or FalloutNV.esm depending on the game). These entries cover almost all aspects of what is in the game, eg. NPCs, items, races, interiors, worlds, quests, etc.

When the game is run, it loads each of the plugins you have installed one by one. The order in which it loads them is, unsurprisingly, what is referred to as the load order. The load order is important for two reasons:

A plugin which changes the entries added by other plugins is dependent on those other plugins, and the game requires all of the latter plugins to be loaded before the former. If they aren't, the game will crash on launch.

The game can only apply one version of any one entry (this is known as the rule of one). Therefore, when more than one plugin changes the same entry, the load order is used to decide which plugin's changes are applied. Put simply, the last loaded plugin's changes are applied. The one exception to the rule of one is that the contents of cells (the physical space in which your character moves) can be changed by any number of plugins, so different plugins can add objects to cells, move them around or remove them and all will see their changes applied by the game.

By changing the load order, you can change which plugins override and which are overridden, and so reduce detrimental conflicts. You cannot actually reduce how much is overridden through load order alone, but it is often the case that some overrides are acceptable while others cause problems in game. Setting a good load order is the process by which you seek to maximise the former instead of the latter.

Further compatibility between mods is then possible through the use of patches, which are made to address incompatibilities between specific mods, and through the use of Wrye Bash, which can create a Bashed Patch that allows you to select between types of changes for different mods. For example, two mods change a piece of armour, but one changes how it looks and the other changes its effectiveness: through load order alone you could only ever get one change, but using Wrye Bash you can get both, because they change different things in the same armour entry.

There are a few hardcoded rules that trump load order in many cases:

A plugin's position in the load order is often displayed by mod managers as a hexadecimal number, from 00 to FE (0 to 255 in decimal). The plugin with position 00 loads first, and the plugin with position FE is loaded last. Hexadecimal numbers are used to display the load order positions of plugins because these numbers form the first two digits of the code that the game uses to reference the entries that the plugin adds, so knowing the numbers allows modders and mod users to determine from which plugin an entry is from.

That's all that you as a mod user need to know about load orders. If you want to find out more about the actual mechanism by which the game decides the load order, read on.

Oblivion, Fallout 3 and Fallout: New Vegas all share the same mechanism for deciding load order. Skyrim, since the 1.4.26 patch, uses a different mechanism.

Load order for Oblivion, Fallout 3 and Fallout: New Vegas is decided by the modification date timestamps of the mod plugins. The active plugin with the earliest date loads first, with plugins being listed in descending date order (earliest to latest). It's a bad idea for a plugin that isn't the game's main master file to load first.

Skyrim's mechanism uses the order that plugins are listed within its plugins.txt file as its load order (from top to bottom). This file is the one in which the list of active plugins is stored, so only active plugins can be strictly said to have a load order.

Dirty Edits, Mod Cleaning & CRCs

Dirty edits are often a side-effect of mod creation, and are often due to bugs in the utilities Bethesda has provided to create mods, rather than bad practice by mod authors. Dirty edits can cause a wide range of issues, including incorrect game settings, missing content, broken quests and crashing to desktop. The more dirty edits there are in a mod, and the more mods with dirty edits you use, the more likely you are to experience issues.

Thankfully there is a way to remove dirty edits from mods relatively easily, a process known as mod cleaning, using TES4Edit (for Oblivion), FO3Edit (for Fallout 3), FNVEdit (for Fallout: New Vegas) or TES5Edit (for Skyrim). A detailed set of instructions and information on mod cleaning can be found on the CS Wiki's TES4Edit Cleaning Guide (the page also largely applies to Fallout 3, Fallout: New Vegas and Skyrim). Wrye *ash can also scan plugins for dirty edits and return their ITM and UDR counts, though at the time of writing it cannot clean plugins itself.

The problem of dirty edits is largely a problem of ignorance on the part of mod authors and users alike of the problems dirty mods can cause. As such, there are community efforts to raise awareness of dirty edits and cleaning. BOSS plays a key role in these efforts, as it holds the complete list of all known dirty mods, and it uses this information to provide notification messages to users for any dirty mods they have installed. There are three key pieces of information that are used to accurately describe and identify an unclean mod. They are:

However, not all unclean mods have all or any of these pieces of information. For unclean mods whose ITM and UDR counts have not been reported, BOSS cannot give them. For unclean mods whose CRCs have not been reported, BOSS cannot give precise notification and so prints a message whether or not the user has cleaned their mod.

BOSS and the modding communities rely on user contribution of this information to progress. For information on how to contribute, see the Contributing To BOSS section below. If you find that a mod is dirty, you should also report this to the mod's author so that they can fix it.

Note: TES4Edit et al. will include a variety of junk records in the ITM count for a plugin, such as new empty cells that are automatically generated by the Construction Set and are almost impossible to remove. These junk records are non-harmful, and BOSS will inform users when a mod contains these to avoid confusion. This is also the source of any discrepancies between the counts produced by TES4Edit and those produced by Wrye *ash. The latter's counts are more technically accurate, but both are acceptable for use.

There is also another type of unnecessary edit, known as a wild edit, that can also cause problems. These edits are neither Identical To Master edits nor deleted records, so cannot be automatically cleaned. Cleaning must be manually done in TES4Edit/FO3Edit/FNVEdit. BOSS can still check for plugins with these edits if the CRCs of the plugins with wild edits are known, and it can provide notification of these edits and some information on fixing them if they are reported in an official BOSS thread.

File Permissions

If you are running Windows Vista or a later version of Windows, BOSS (and other modding programs) may be prevented from working correctly by the UAC security feature. There are four common workarounds to this problem:

  1. Install the game outside the Program Files (or Program Files (x86) if on 64-bit Windows). UAC prevents unauthorised edits to these folders, so by installing the game outside of them, you remove it from UAC's reach, allowing you to use mods more easily.
  2. Deactivate UAC. This can be done from the Control Panel, and will turn UAC off across the whole of your computer. It is up to you whether you feel that you have adequate security measures in place to do this without risk.
  3. Give yourself Full Control permissions over your game install folder. This will allow you to make any edits you desire while keeping UAC active and on guard for any edits made by programs you do not run, and also means that you do not need to reinstall your game to a new location.
  4. Run BOSS as an Administrator. Right-click the BOSS executable, or the shortcut if launching from a shortcut, and select Run as administrator.

For those that wish to take the third option and give themselves Full Control permissions, here is a guide:

  1. Right-click the folder you wish to change the permissions for, and select Properties.
  2. In Properties, select the Security tab, and click the Edit... button. A UAC prompt may appear, simply allow yourself to continue.
  3. In the Group or user names box, select the Users option.
  4. In the lower box, check the box opposite Full Control in the Allow column. Press OK to exit. If a UAC prompt appears, allow the change.
  5. In the Properties window, select OK to exit. You should now have Full Control permissions over your chosen folder.

Differences between BOSS v2 and v3

BOSS version 3 is an almost complete redesign and rewrite of v2. As part of its development, many features present in v2 have been changed or removed, and the table below provides an overview of these changes.

Feature / ComponentBOSS v2BOSS v3
Plugin sorting mechanismBOSS scans the game plugin folder for plugins, and arranges those found in the order that they appear in the masterlist. This order is then altered according to any user rules present in the userlist.BOSS scans the game plugin folder for plugins, reads their contents, and uses this data on their masters and the records they change in conjunction with any additional metadata supplied by the masterlist and userlist to calculate the optimal load order according to its sorting algorithm. The load order produced is generally different to that provided by v2.
Masterlist updatingBOSS downloads a masterlist and inserts into it version information that is scraped from Google Code.BOSS uses Git to update masterlists, benefiting from a more robust mechanism with support for differential updates (reducing the amount of data that needs to be downloaded) and rolling back revisions in case of parsing errors.
Masterlist structure & syntaxUses a custom file format.Uses YAML 1.2, with custom condition string syntax modelled after Python's condition expressions.
Userlist structure & syntaxUses a custom file format, different from the masterlist format.Uses the same format and syntax as the masterlist.
Morrowind supportTechnically supports Morrowind, though its masterlist is near-empty.Does not support Morrowind. Morrowind mod users are advised to use mlox.
BOSS file locationsAll BOSS's files are stored in the BOSS folder first installed.BOSS stores any files it creates (reports, masterlists, userlists, settings) in the %LOCALAPPDATA%\BOSS folder.
Game selection on first run.BOSS asks the user to select a game from a list.BOSS selects the first game detected.
File CRC calculationFile CRC calculation is optional.File CRC calculation is always-on, as it no longer presents any significant additional performance impact.
BOSS Log / Report formatThe BOSS Log can either be generated as plain text or as HTML.The BOSS Report can only be generated as HTML.
Perform trial runBOSS can perform a trial run, in which it displays the load order it would set, but does not set it.The option to perform a trial run has been removed, as equivalent functionality is provided by cancelling sorting at the confirmation dialog.
Update masterlist onlyBOSS can be run to update a game's masterlist without then sorting any plugins, even if that game is not installed.BOSS can only update a masterlist as part of the sorting process, and cannot run for games that are not installed. This is because BOSS's updating process no longer inserts version information into the masterlists, and so the exact same masterlists that BOSS uses can now be downloaded from BOSS's online repositories using a web browser, removing the need for BOSS to include this functionality.
Undo changesIt is possible to run BOSS to undo its changes back one run or two.It is no longer possible to undo load order changes through BOSS. Instead a confirmation dialog is provided to allow users to make sure that BOSS will set a load order they want, and to give them a last-minute opportunity to backup their existing load order, perhaps using a mod manager of their choice.
Optionally suppress BOSS Log / Report displayBOSS allows the user to stop the BOSS Log being automatically displayed after sorting.The BOSS Report is always displayed after sorting, as it is more important for the user to verify that the automated sorting process completed successfully and correctly.
Nehrim supportBOSS provides first-class support for Nehrim alongside Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas.BOSS supports Nehrim as an Oblivion-derived game instance, and the Nehrim and Oblivion masterlists have been merged. This is due to v3's generalised support for Total Conversion mods across the games it supports. In practice Nehrim support appears the same.
User rulesBOSS allows the user to customise its output by providing user rules for specifying relative plugin positions and for adding to or replacing the messages attached to mods.BOSS allows the user to add to any metadata provided by the masterlist.
  • It is no longer possible to precisely set a plugin's load order position. BOSS can be told that a plugin A has to load after another plugin B, but where exactly after B that plugin A is positioned is decided by the sorting algorithm.
  • It is no longer possible to specify a plugin A to load before another plugin B, though a similar effect may be produced by loading B after A.
  • It is no longer possible to sort or insert into groups, as groups no longer exist.
  • It is no longer possible to replace messages provided by the masterlist.
  • Knowledge of message syntax is no longer required to add new messages.
  • It is now possible to provide conditions for user-added messages.
Updating BOSSBOSS includes an update checker and a semi-automated update process.BOSS no longer includes an update checker or a semi-automated update process. This is because new releases are announced in the masterlists anyway, and the semi-automated update process is not as efficient as using the installer.
Manual editing of user rules / metadataBOSS allows the user to open the userlist file for manual editing from the GUI.BOSS only provides the GUI metadata editor for editing the userlist. Users may still edit the userlist file manually, but it must also be located manually.
Proxy SupportBOSS includes support for proxies, allowing users to specify the proxy hostname and port number and provide authentication details.BOSS no longer includes any proxy support, as the proxy support in v2 was reported broken a few times and it was deemed not worth fixing due to very low usage.
BOSS Log / Report contentThe BOSS Log includes the following sections:
  • Summary
  • User Rules
  • Script Extender Plugins
  • Recognised Plugins
  • Unrecognised Plugins
The user rules and script extender plugins sections have been removed as user metadata cannot fail to be applied, and the script extender plugins information was deemed irrelevant. The recognised and unrecognised plugins sections have been combined into one Details section, as there is no longer any such thing as an unrecognised plugin.
BOSS Log / Report FiltersThe HTML BOSS Log includes a large number of filters to selectively hide content.The number of filters has been reduced, as some are no longer applicable:
  • BOSS no longer labels active plugins as such, so the active label filter has been removed.
  • Requirement and incompatibility messages no longer exist (instead warnings are displayed if the relevant files are missing / present), so their corresponding filters have been removed.
  • The hide clean plugins filter has been removed as it was misleading, since the plugins hidden were not necessary clean.
BOSS Log plugin submissionBOSS allows users to submit unrecognised plugins from the HTML BOSS Log.As there is no longer any such thing as an unrecognised plugin, the submission system has been removed.
BOSS Log display customisationBOSS allows users to customise the colour scheme used by the BOSS Log.BOSS does not allow customisation of the colour scheme used by the BOSS report. However, the styling is now provided by a static stylesheet instead of being dynamically generated within the report every time BOSS is run, so this static stylesheet can be edited to achieve the same effect.
Command line interfaceBOSS provides a command line interface.BOSS does not provide a command line interface, as the greater need for user interaction makes it unwieldy.

Version History

Only the history of version 3 is given, as changes prior to version 3 are irrelevant due to the complete redesign that occurred. The masterlists are updated far too frequently for their changes to be concisely recorded here, but a full history of changes to them may be viewed by browsing the GitHub repositories.

3.0.0 - Day February 2014